package com.wondertek.onvif.service.auth;

import java.net.HttpURLConnection;

/**
 * ONVIF 认证策略接口
 * 支持不同的认证方式：Basic、Digest、无认证
 */
public interface AuthenticationStrategy {
    
    /**
     * 构建认证头
     * 
     * @param username 用户名
     * @param password 密码
     * @param serviceUrl 服务URL
     * @param method HTTP方法
     * @return 认证头字符串，如果不支持则返回null
     */
    String buildAuthHeader(String username, String password, String serviceUrl, String method);
    
    /**
     * 检查是否支持此认证方式
     * 
     * @param connection HTTP连接（可用于检查响应头）
     * @return 是否支持
     */
    boolean isSupported(HttpURLConnection connection);
    
    /**
     * 获取认证类型名称
     * 
     * @return 认证类型
     */
    String getAuthType();
    
    /**
     * 获取优先级（数字越小优先级越高）
     * 
     * @return 优先级
     */
    int getPriority();
}